Patch-ID#  100204-01
Keywords: 4.0.3 scsi
Synopsis: SunOS 4.0.3c: SCSI hardware bug fix 
Date: 
 
SunOS release: 4.0.3c
 
Unbundled Product: 
 
Unbundled Release:
 
Topic: 
 
BugId's fixed with this patch:

Architectures for which this patch is available:

Patches which may conflict with this patch:

Obsoleted by:

Problem Description:

This SCSI patch is needed when using one of the following cpu boards in a Sun-4/20 or 4/40 running SunOS 4.0.3C.

  501-1680-03 and greater    0MB Sun-4/20 CPU Board
  501-1748-03 and greater    0MB Sun-4/20 CPU Board

  501-1689-08 and greater    8MB Sun-4/40 CPU Board               
  501-1835-02 and greater    8MB Sun-4/40 CPU Board  



NOTE:  The original SunOS 4.0.3c media distribution does NOT include this SCSI
 patch. Do not use Tape 1, P/N 700-2212-10 Rev A, when installing or 
 restoring SunOS 4.0.3c on systems with the above CPU board part numbers. 
 Request the SunOS 4.0.3c SCSI patch kit, P/N 795-1657-01, from the 
 Answer Center.



INSTALL:
------------------------------------------------------------------------------
NOTE:  If your Desktop SPARC machine is running as a diskless/dataless client, 
       do not follow the procedure below without first consulting the section 
       "FOR DISKLESS CLIENTS" at the end of this procedure.

CAUTION:  The software patch is for SunOS 4.0.3c ONLY.  Do not perform this 
          procedure if your system is running any other release of SunOS.  
          Instead,  replace the system's CPU board.

1.  Shutdown your system.

2.  Do an L1-A.

3.  Restart the system in the kadb editor. (Substitute the correct logical unit 
    number for your system's boot device in place of "X" in the line below.)  
    Type:

	 b sd(0,X,0)kadb -d

   When you see the "kadb:" prompt, continue by pressing the carriage return.

   Many messages scroll across the screen as the system begins to start up. 
   When the kadb editor is ready, it displays the "kadb>" prompt.

4.  Double check your machine's operating system software release by typing:

    	kadb> esp_phasemanage+7c?ia

    If your machine is running SunOS 4.0.3c, you should see the following 
    output:

	esp_phasemanage+7c:  call _eprintf
	esp_phasemanage+80

    If you do not see "call _eprintf" in the output, then STOP HERE.  Your 
    system is not running SunOS 4.0.3c.  To stop, type the abort sequence 
    (L1-a).  Otherwise, continue with the next step.

5.  Patch memory.  Type the following line:

	 esp_phasemanage+7c?W 1000000

   The system will respond:

	_esp_phasemanage+0x7c:  0x40000b92  0x1000000

6.  Continue starting up the system.  Type:

	 :c

7.  Log on as root.

8.  Save the original vmunix file.  Type:

	 cp /vmunix /vmunix.org

9.  Start the adb editor.  Type the following:

	adb -w /vmunix

    When the adb editor starts, you will not see any prompt.

10. Patch the vmunix file.  Type:

	esp_phasemanage+7c?W 1000000

11. Exit the adb editor and save the vmunix file by typing Control-D.

12. Copy the esp.o file before editing it.  Type:

	cd /usr/sys/sun4c/OBJ
	cp esp.o esp.o.org

    NOTE:  If the system responds with a "/: filesystem full" message,  you
	   will need to make space in the root filesystem by either deleting
     	   unwanted and unused files (e.g. core dumps) or move such files onto 
 	   another partition until sufficient space is available for this 
	   backup copy.

    Note:  If the system responds "file not found", it means your system does 
    not have the esp.o file.  Skip to step 16 and restart the system.

13.  Start the adb editor.  Type the following:

	adb -w esp.o

14. Patch the esp.o file.

    Type:

	esp_phasemanage+7c?W 1000000

15. Exit the adb editor and save the esp.o file by typing Control-D.

16. Restart the system.  Type:

	sync
	reboot

    The workstation should start up normally.

    Note:  After you complete the patch procedure, it is advisable to fully 
	   back up your machine's filesystems to ensure that the changes are 
           saved.

==================================================================================
    If you encounter any problems in restarting your system, you may have 
    mistyped a command.  To correct this, do the following:
=================================================================================

Error Recovery only:

1.  Restart the system in the kadb editor.  (Substitute the correct logical 
    unit number for your system's boot device in place of "X" in the line 
    below.)  Type:

	b sd(0,X,)kadb -d

    When you see the "kadb>" prompt, type:

	vmunix.orig

2.  Patch memory.  Type the following line:

	esp_phasemanage+7c?W 1000000

   The system will respond:

	_esp_phasemanage+0x7c:  0x40000b92  0x1000000

3.  Continue starting up the system.  Type:

	:c

4.  At the login prompt, log on as root.

5.  Restore the original system files.  Type the following:

	cp /vmunix.org /vmunix
	cd /usr/sys/sun4c/OBJ
	cp esp.o.org esp.o

    Don't worry if the system displays a "file not found" error message.

6.  Start the adb editor by typing the following:

	adb -w /vmunix

    When the adb editor starts, you will not see any prompt.

7.  Patch the vmunix file.  Type:

	esp_phasemanage+7c?W 1000000

8.  Exit the adb editor and save the vmunix file by typing Control-D.

    If your system does not have an esp.o file, skip to step 12 and restart the 
    system.

9.  If your system has an esp.o file, edit it with the adb editor.  Type the
    following:

	adb -w esp.o

10.  Patch the esp.o file.  Type:

	esp_phasemanage+7c?W 1000000

11.  Exit the adb editor and save the esp.o file by typing Control-D.

12.  Restart the system.  Type:

	sync
	reboot

The workstation should start up normally.  

FOR DISKLESS/DATALESS CLIENTS:

If you are using your Desktop SPARC machine as a diskless/dataless client, you 
must follow a slightly different patch procedure than the one described in the 
previous sections.  Execute the following steps on the boot server of the 
diskless/dataless client machine.

1.  Log in as root to the boot server.

2.  Type the following commands, replacing the variable <system_name> with the 
    actual name of the client machine.

	cd /export/root/<system_name>
	cp vmunix vmunix.org
	adb -w vmunix

    NOTE:  If the boot server's filesystem is set up according to defaults, the 
           root directories for diskless clients will be located in 
           /export/root/<system_name> as shown above.  If the filesystem is 
           arranged differently, use the appropriate root directory instead.

    NOTE:  If the system responds with a "/: filesystem full" message,  you
	   will need to make space in the root filesystem by either deleting
     	   unwanted and unused files (e.g. core dumps) or move such files onto 
 	   another partition until sufficient space is available for this 
	   backup copy.

3.  Patch the vmunix file.  Type:

	esp_phasemanage+7c?W 1000000

4.  Exit the adb editor, and save the vmunix file by typing Control-D.

    NOTE:  If the boot server also serves other diskless clients, you may
	   repeat steps 2-4 above, or just copy the newly-edited vmunix file to 
	   the other root directories.

5.  Save your original /export/exec/kvm/sun4c/boot/vmunix file.  Type the 
    following on one line:

	cd /export/exec/kvm/sun4c/boot
	cp vmunix vmunix.org

6.  Start the adb editor.  Type:

	adb -w vmunix

7.  Patch the /export/exec/kvm/sun4c/boot/vmunix file using the adb editor.  
    Type:

	esp_phasemanage_+7c?W 1000000

8.  Exit the adb editor, and save the /export/exec/kvm/sun4c/boot/vmunix file 
    by typing Control-D.

9.  Copy the esp.o file before editing it.  Type:

	cd /usr/sys/sun4c/OBJ
	cp esp.o esp.o.org

    NOTE:  If the system responds " file not found", it means your system does 
           not have the esp.o file.  Skip to step 13 - you're done.

10.  Start the adb editor.  Type the following:

	adb -w esp.o

11.  Patch the esp.o file.  Type:

	esp_phasemanage+7c?W 1000000

12.  Exit the adb editor and save the esp.o file by typing Control-D.

     NOTE:  Unlike the vmunix file, which must be patched separately for each 
            client, the esp.o file only needs to be patched once to accommodate 
            all the clients of the boot server.

13.  Done.  The Desktop SPARC client should start up normally.
	

     
   

